查看原文
其他

爬取网易云音乐评论!python 爬虫入门实战(六)selenium 入门!

lamyoung 白玉无冰 2022-06-10


说到爬虫,第一时间可能就会想到网易云音乐的评论。网易云音乐评论里藏了许多宝藏,那么让我们一起学习如何用 python 挖宝藏吧!文章底部获取完整代码!



既然是宝藏,肯定是用要用钥匙加密的。打开 Chrome 分析 Headers 如下。

这参数看起来挺复杂的,我们就不用 requsets 去调用这个链接了。


这次使用的是 selenium ! 一个浏览器自动化测试框架!通过它可以模拟手动操作浏览器!


为此我们要准备好驱动器 chromedriver 和 chrome 浏览器。


chromedriver 可以在淘宝镜像中下载,选择与 chrome 浏览器对应的版本进行下载。下载地址如下。

http://npm.taobao.org/mirrors/chromedriver


整个项目使用了 python3 与一些第三方库。参考如下。

from selenium import webdriverimport jiebafrom wordcloud import WordCloudfrom PIL import Imageimport numpy as np

然后配置 config.json  

{ "id":"1336789644", "page": 200, "useCache": true, "font_path": "SimHei.ttf", "mask": "mask.png", "chromedriver": "chromedriver"}

运行 sound.py 就会生成词云图。

以及所有的评论数据


看了使用方法,接下来进入分析环节!

找到网易云音乐的地址并发现规律,并使用 webdriver 打开!

driver = webdriver.Chrome(CONFIG['chromedriver'])driver.get(f'https://music.163.com/#/song?id={SOUND_ID}')

接着让 driver 跳入到评论框的 frame 里。

driver.switch_to.frame('g_iframe')

为何这么做?因为在 frame 结构里无法用 xpath 解析到。而评论数据正好在这个 iframe 中。

选中其中一个评论,分析其格式结构,可以看到都是在同一个 class 名内。

编写对应的 xpath 得到所有的评论列表。

element_list = driver.find_elements_by_xpath('//div[@class="cnt f-brk"]')

选择下一页按钮,分析其格式结构,可以看到 class 名是以一个前缀为开头的。

编写对应的 xpath 得到下一页按钮,并在需要的时候模拟点击。

next_button = driver.find_element_by_xpath('//a[starts-with(@class,"zbtn znxt js-n-")]')driver.execute_script('arguments[0].click();', next_button)

数据分析结束后,该生成结果喽。

将评论列表保存为 json。

with open(filePath,'w') as f: json.dump(comments_list,f, ensure_ascii=False, indent=4)

使用 jieba 分词和 wordcloud 生成词云图。

# 词云处理image_mask = np.array(Image.open(CONFIG['mask']))wordlist = jieba.cut(';'.join(comments_list))wordcloud = WordCloud(font_path=CONFIG['font_path'], background_color='white', mask=image_mask, scale=1.5).generate(' '.join(wordlist))# 保存图wordcloud.to_file(f'./result/{SOUND_ID}-{PAGES}.png')


以上就是使用 selenium 爬取网易云音乐评论的整个步骤喽!文章底部获取完整代码!


参考书籍:



用 python 实现蚂蚁庄园自动拍球!

用 python 分析基金!让赚钱赢在起跑线!

python 实现图片批量加入水印!pillow 入门实战!

爬取app内的数据!mitmproxy入门教程!python爬虫入门实战

用 python 实现切割视频,加入水印,压缩并转成 gif !

动态爬取论坛列表!python爬虫入门实战(四)!

python爬虫入门实战(三)不会正则怎么办?xpath分分钟搞定!

python爬虫入门实战(二)!多线程爬虫!

python爬虫入门实战!爬取博客文章标题和链接!

史上最全面的正则表达式教程,支持等多种语言在线练习!

浅析射线检测 raycast 的使用 !Cocos Creator 3D !

原创不易!转载请保留文末二维码。

本文仅供个人交流学习使用,请勿用于其他用途

点击“阅读原文”查看完整代码

我就知道你“在看”▼


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存